package models;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;

import securesocial.provider.UserId;

@Entity
public class EstablecimientoAlimenticio extends Usuario {
	
	private static final long serialVersionUID = -5063338088844571551L;
	
	@OneToOne(cascade=CascadeType.ALL)
	private PerfilEA perfil;
	
	@OneToMany(cascade=CascadeType.ALL, mappedBy="establecimientoAlimenticio")
	private List<Promo> promos = new ArrayList<Promo>();
	
	public EstablecimientoAlimenticio(String email, String password, String nombre, UserId socialUserId) {
		super(email, password, nombre, socialUserId, Arrays.asList((ADietaRol)ADietaRol.find("byName", TipoRol.ESTABLECIMIENTO_ALIMENTICIO).first()));
	}
	
	public static List<EstablecimientoAlimenticio> findByNombre(String nombre) {
		return EstablecimientoAlimenticio.find("LOWER(nombre) like ?", "%" + nombre.toLowerCase() + "%").fetch(10);
	}
	
	@Override
	public Boolean isEstablecimientoAlimenticio() {
		return Boolean.TRUE;
	}
	
	public PerfilEA getPerfil() {
		return perfil;
	}
	
	public void setPerfil(PerfilEA perfil) {
		this.perfil = perfil;
		// prueba para ver la rel bidireccional desde el initial-data_usuarios.yml
		//perfil.setEstablecimientoAlimenticio(this);
	}
	
	public List<Promo> getPromos() {
		return promos;
	}
	
	public void setPromos(List<Promo> promos) {
		this.promos = promos;
	}
	
}
